/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package models.entidades.utilitario;

import java.util.HashSet;
import java.util.Set;
import models.entidades.AtributoDimensao;
import models.entidades.RestricaoNulidade;

/**
 *
 * @author Wenderson
 */
public abstract class AbstractAtributoDim {
    
    public abstract RestricaoNulidade isNulidade(boolean isNull);
    public abstract boolean isAceitaNull();
    public abstract boolean isDataFinal();
    public abstract boolean isFlCorrente();
    public abstract boolean isDataInicial();
    public abstract boolean isSurrogateKey();
    public abstract boolean isChaveNaturalDim();
    
    public abstract void setAceitaNull(boolean aceita);
    public abstract void setDataFinal();
    
    
    protected RestricaoNulidade isNulidadeImp(boolean isNull) {
        RestricaoNulidade rn = new RestricaoNulidade();
        
        if (isNull) {
            rn.setCdNulidade(1);
            rn.setNulidade("SIM");
        } else {
            rn.setCdNulidade(2);
            rn.setNulidade("NÃO");
        }
        
        return rn;
    }
    
    protected boolean isAceitaNullImp(RestricaoNulidade rn) {
        if (rn.getNulidade().equalsIgnoreCase("sim")) {
            return true;
        } else {
            return false;
        }
    }
    
    protected RestricaoNulidade aceitaNullImp(boolean aceita) {
        RestricaoNulidade rn = new RestricaoNulidade();
        
        if (aceita) {
            rn.setCdNulidade(1);
            rn.setNulidade("SIM");
        } else {
            rn.setCdNulidade(2);
            rn.setNulidade("NÃO");
        }
        
        return rn;
    }
    
    protected boolean existsOne(Set set) {
        return set.size() > 0 ? true : false;
    }
    
    protected Set setExists() {
        Set set = new HashSet();
        set.add(1);
        return new HashSet(1);
    }
}
